package com.salim.leetcode.$65;

public class ValidNumber {
    public boolean isNumber(String s) {
        boolean dot = false;
        boolean e = false;
        boolean number = false;
        s = s.trim();
        for(int i=0;i<s.length();i++){
            //是否有数字
            if(s.charAt(i)>='0' && s.charAt(i)<='9'){
                number = true;
            }
            //如果是. 如果前面有e false 如果前面有. false
            //这题认为1.是true 所以可以以.结尾
            else if(s.charAt(i)=='.'){
                if(e||dot){
                    return false;
                }
                dot = true;
            }
            //如果是e 如果前面有e false 如果前面没数字 false
            //不能以e结束 重置number
            else if(s.charAt(i)=='e'){
                if(e||!number){
                    return false;
                }
                e = true;
                number = false;
            }
            else if(s.charAt(i) == '-' || s.charAt(i) == '+') {
                //1e-1 true +-6 false
                //即+-不能出现在第二位 除非前一位是e
                if(i != 0 && s.charAt(i-1) != 'e') {
                    return false;
                }
            } else{
                return false;
            }
        }
        return number;
    }
}
